// Ninf-G-XX, ver. 0.1
// Copyright 2011 National Institute of Advanced Industrial Science and Technology
// 
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
// 
//     http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#include <cstdio>
#include "NcAPI.h"

int main(int argc, char ** argv){

  argc = NinfParseArg(argc, argv);

  int n = 10;
  //  int m = 10000;
  int m = 100;
  int code;

  double * ratios = new double[n];
  for (int i = 0; i < n; i++){
    int id;
    if ((code = NinfCallAsync("test/pi_trial", &id, i, m, &(ratios[i]))) 
	!= NINF_NO_ERROR)
      fprintf(stderr, "something happend: %d\n", code);

  }  

  if ((code = NinfWaitAll()) != NINF_NO_ERROR)
    fprintf(stderr, "something happend: %d\n", code);    

  NinfFinalize();

  double ratioSum = 0.0;
  for (int i = 0; i < n; i++){
    ratioSum += ratios[i];
    printf("%f\n", ratios[i]);
  }

  fprintf(stdout, "pi = %f\n", (ratioSum / n) * 4.0);

  return 0;
}

